package menu

import "github.com/gogf/gf/v2/frame/g"

// sys_menu 菜单
type MenuParam struct {
	ID        *string `json:"id,omitempty" dc:"菜单ID"`
	AppCode   *string `json:"appCode,omitempty" dc:"应用编码"`
	ParentId  *string `json:"parentId,omitempty" dc:"父ID" v:"required#请输入父ID"`
	Name      *string `json:"name,omitempty" dc:"菜单名称" v:"required#请输入菜单名称"`
	Code      *string `json:"code,omitempty" dc:"唯一编码" v:"required#请输入唯一编码"`
	Pids      *string `json:"pids,omitempty" dc:"父ID集合"`
	Type      *int    `json:"type,omitempty" dc:"菜单类型<sys_menu_type>"`
	Sort      *string `json:"sort,omitempty" dc:"排序"`
	Path      *string `json:"path,omitempty" dc:"路由地址"`
	Component *string `json:"component,omitempty" dc:"组件地址"`
	Icon      *string `json:"icon,omitempty" dc:"菜单图标"`
	IsShow    *int    `json:"isShow,omitempty" dc:"是否显示"`
	IsLink    *int    `json:"isLink,omitempty" dc:"是否链接"`
	Url       *string `json:"url,omitempty" dc:"外部链接地址"`
	Enabled   *int    `json:"enabled,omitempty" dc:"是否启用"`
	OpenType  *int    `json:"openType,omitempty" dc:"打开方式<sys_menu_open_type>"`
	IsCache   *int    `json:"isCache,omitempty" dc:"是否缓存"`
	IsSync    *int    `json:"isSync,omitempty" dc:"是否同步"`
	Variable  *string `json:"variable,omitempty" dc:"额外参数JSON"`
}
type SyncRouteParam struct {
	AppCode   *string           `json:"appCode,omitempty" dc:"应用编码" position:"5"`
	IsSync    *int              `json:"isSync,omitempty" dc:"是否同步" position:"85"`
	Pids      *string           `json:"pids,omitempty" dc:"父ID集合" position:"20"`
	Name      *string           `json:"name,omitempty" dc:"菜单名称" position:"10"`
	Code      *string           `json:"code,omitempty" dc:"唯一编码" position:"15"`
	Type      *int              `json:"type,omitempty" dc:"菜单类型<sys_menu_type>" position:"25"`
	Sort      *string           `json:"sort,omitempty" dc:"排序" position:"30"`
	Path      *string           `json:"path,omitempty" dc:"路由地址" position:"35"`
	Component *string           `json:"component,omitempty" dc:"组件地址" position:"40"`
	Icon      *string           `json:"icon,omitempty" dc:"菜单图标" position:"45"`
	IsShow    *int              `json:"isShow,omitempty" dc:"是否显示" position:"50"`
	IsLink    *int              `json:"isLink,omitempty" dc:"是否链接" position:"55"`
	Url       *string           `json:"url,omitempty" dc:"外部链接地址" position:"60"`
	Enabled   *int              `json:"enabled,omitempty" dc:"是否启用" position:"65"`
	OpenType  *int              `json:"openType,omitempty" dc:"打开方式<sys_menu_open_type>" position:"70"`
	IsCache   *int              `json:"isCache,omitempty" dc:"是否缓存" position:"75"`
	Variable  *string           `json:"variable,omitempty" dc:"额外参数JSON" position:"80"`
	Ext       g.Map             `json:"ext,omitempty" dc:"额外参数JSON-对象" position:"80"`
	Children  []*SyncRouteParam `json:"children,omitempty" dc:"子菜单集合" position:"45"`
}
